home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 090 / byt86jun.arc / MIDI.ARC / LIST3.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1980-01-01  |  1.1 KB  |  53 lines

  1.  
  2. { Return true if input is a MIDI status byte
  3. }
  4. function midi_status(midi_data_byte:byte):boolean;
  5. begin
  6. if (midi_data_byte > MAX_MIDI_DATA) then
  7.   midi_status:=true
  8. else
  9.   midi_status:=false;
  10. end;
  11.  
  12. { Return the channel # from a MIDI status byte
  13. }
  14. function midi_chan(running_status:byte):byte;
  15. begin
  16. midi_chan:=running_status and 15;
  17. end;
  18.  
  19. { Return the command portion of a MIDI status byte
  20. }
  21. function midi_cmnd(running_status:byte):byte;
  22. begin
  23. midi_cmnd:=(running_status shr 4) and 7;
  24. end;
  25.  
  26. { Return # of data bytes associated 
  27.   with a given MIDI status byte
  28. }
  29. function nmdat(running_status:byte):byte;
  30. begin
  31. if (midi_cmnd(running_status) in 
  32.   [PROGRAM_CHANGE, AFTER_TOUCH_P]) then
  33.   nmdat:=1
  34. else
  35.   nmdat:=2;
  36. end;
  37.  
  38. { Limit input to valid MIDI data range
  39. }
  40. function midi_data_limit(midi_data_byte:integer):byte;
  41. begin
  42. if midi_data_byte < MIN_MIDI_DATA then
  43.   midi_data_limit:=MIN_MIDI_DATA
  44. else if midi_data_byte > MAX_MIDI_DATA then
  45.   midi_data_limit:=MAX_MIDI_DATA
  46. else
  47.   midi_data_limit:=midi_data_byte;
  48. end;
  49.  
  50. se if midi_data_byte > MAX_MIDI_DATA then
  51.   midi_data_limit:=MAX_MIDI_DATA
  52. else
  53.   m